Embedded content suitability scoring

ABSTRACT

Embedded content suitability scoring is provided. A plurality of containers of a document is identified. Each container includes a portion of content of the document. A source for a container of the plurality of containers of the document is identified by matching the content of the container to the content of the source. A suitability score for the container is determined based, at least in part, on the content of the container and the content of the source. A suitability category for the container is determined based, at least in part, on the suitability score. The document is presented along with markup of the container that is based, at least in part, on the suitability category.

BACKGROUND OF THE INVENTION

The present invention relates generally to the field of contentmanagement, and more particularly to embedded content suitabilityscoring.

Content management (CM), is a set of processes and technologies thatsupports the collection, managing, and publishing of information in anyform or medium. When stored and accessed via computers, this informationhas come to be referred to, simply, as content or, to be precise,digital content. Digital content may take the form of text (such aselectronic documents), multimedia files (such as audio or video files),or any other file type that follows a content lifecycle requiringmanagement.

SUMMARY

According to one embodiment of the present invention, a method forembedded content suitability scoring is provided. The method includesidentifying, by one or more processors, a plurality of containers of adocument, wherein each container includes a portion of content of thedocument; identifying, by one or more processors, a source for acontainer of the plurality of containers of the document by matching thecontent of the container to the content of the source; determining, byone or more processors, a suitability score for the container based, atleast in part, on the content of the container and the content of thesource; determining, by one or more processors, a suitability categoryfor the container based, at least in part, on the suitability score; andpresenting, by one or more processors, the document along with markup ofthe container that is based, at least in part, on the suitabilitycategory.

According to another embodiment of the present invention, a computerprogram product for embedded content suitability scoring is provided.The computer program product comprises a computer readable storagemedium and program instructions stored on the computer readable storagemedium. The program instructions include program instructions toidentify a plurality of containers of a document, wherein each containerincludes a portion of content of the document; program instructions toidentify a source for a container of the plurality of containers of thedocument by matching the content of the container to the content of thesource; program instructions to determine a suitability score for thecontainer based, at least in part, on the content of the container andthe content of the source; program instructions to determine asuitability category for the container based, at least in part, on thesuitability score; and program instructions to present the documentalong with markup of the container that is based, at least in part, onthe suitability category.

According to another embodiment of the present invention, a computersystem for embedded content suitability scoring is provided. Thecomputer system includes one or more computer processors, one or morecomputer readable storage media, and program instructions stored on thecomputer readable storage media for execution by at least one of the oneor more processors. The program instructions include programinstructions to identify a plurality of containers of a document,wherein each container includes a portion of content of the document;program instructions to identify a source for a container of theplurality of containers of the document by matching the content of thecontainer to the content of the source; program instructions todetermine a suitability score for the container based, at least in part,on the content of the container and the content of the source; programinstructions to determine a suitability category for the containerbased, at least in part, on the suitability score; and programinstructions to present the document along with markup of the containerthat is based, at least in part, on the suitability category.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a functional block diagram illustrating a computingenvironment, in accordance with an embodiment of the present invention.

FIG. 2 is a flowchart depicting operations for embedded contentsuitability scoring, on a computing device within the computingenvironment of FIG. 1, in accordance with an embodiment of the presentinvention.

FIG. 3A is a depiction of an example user interface presenting anexample document, in accordance with an embodiment of the presentinvention.

FIG. 3B is a depiction of an example user interface presenting markupfor the example document of FIG. 3A, in accordance with an embodiment ofthe present invention.

FIG. 4 is a block diagram of components of a computing device executingoperations for embedded content suitability scoring, in accordance withan embodiment of the present invention.

DETAILED DESCRIPTION

Embodiments of the present invention recognize that a modern contentmanagement system (CMS) may offer many capabilities for the deposit andmaintenance of centralized information. For example, a CMS may providetracking versions of a document. Embodiments recognize a need foraddressing content embedded or attached into higher-level structures ordocuments. Further, embodiments recognize difficulties when managingcontent for relevance, accuracy, and security.

Embodiments of the present invention provide for extended contentmanagement capabilities. In the description herein, an email message isused as an illustrative example of one implementation of the invention.However, it should be understood that other types of documents andcontent may be used in other implementations. Embodiments of the presentinvention provide content management for reused content.

Embodiments of the present invention will now be described in detailwith reference to the Figures. FIG. 1 is a functional block diagramillustrating a computing environment, in accordance with an embodimentof the present invention. For example, FIG. 1 is a functional blockdiagram illustrating computing environment 100. Computing environment100 includes computing device 102 and client device 110 connected overnetwork 120. Computing device 102 includes scoring program 104 andcontent management (CM) database 106. Client device 110 includes a userinterface (UI), client UI 112, and document 114.

In various embodiments, computing device 102 is a computing device thatcan be a standalone device, a server, a laptop computer, a tabletcomputer, a netbook computer, a personal computer (PC), or a desktopcomputer. In another embodiment, computing device 102 represents acomputing system utilizing clustered computers and components to act asa single pool of seamless resources. In general, computing device 102can be any computing device or a combination of devices with access toclient device 110, and with access to and/or capable of executing someor all of scoring program 104, CM database 106, client UI 112, anddocument 114. Computing device 102 may include internal and externalhardware components, as depicted and described in further detail withrespect to FIG. 4.

In this exemplary embodiment, scoring program 104 and CM database 106are stored on computing device 102, and client UI 112 and document 114are stored on client device 110. In other embodiments, one or more ofscoring program 104, CM database 106, client UI 112, and document 114may reside on other computing devices, provided that each can access andis accessible by each other. In yet other embodiments, one or more ofscoring program 104, CM database 106, client UI 112, and document 114may be stored externally and accessed through a communication network,such as network 120. Network 120 can be, for example, a local areanetwork (LAN), a wide area network (WAN) such as the Internet, or acombination of the two, and may include wired, wireless, fiber optic orany other connection known in the art. In general, network 120 can beany combination of connections and protocols that will supportcommunications between computing device 102 and client device 110, inaccordance with a desired embodiment of the present invention.

Scoring program 104 operates to determine a suitability score for one ormore portions of content. In one embodiment, scoring program 104determines a suitability score based on a document and content of asource. For example, scoring program 104 determines a suitability scorefor each of one or more portions of content of document 114 based oncontent of a source of CM database 106 that corresponds to each portionof content. In this example, scoring program 104 presents thesuitability scores via client UI 112 by presenting document 114 alongwith markup reflecting the suitability scores.

Document 114 is an electronic document that includes content. In variousexamples, the content includes text, audio, video, multimedia, or anycombination thereof. For example, document 114 may be a newsletter, aperiodic report, a chat message (e.g., of an instant messaging program),or an email message. In order to facilitate discussion, embodiments ofthe present invention are discussed herein using an email message as anillustrative example, but it should be understood that such an exampledoes not limit the scope of the invention. Generally, document 114 is anelectronic document that includes content that may be reused from one ormore sources.

CM database 106 is a data repository that may be read by scoring program104. One or more sources having content (e.g., portions of text, audio,video, multimedia, contact information, or other content) may be storedto CM database 106. Each source may be associated with versioninginformation. The versioning information includes, in various examples, afile name, version number, revision date, and one or more previousversions of the content of the source. In one example, a source includesa contact record of an address book. In this case, the source maycontain a version history for contact information that identifies apiece of contact information (e.g., a phone number, email address, oruniform resource locator (URL)) that was previously valid for thecontact, but which has since been changed to a current version. Inanother example, a source includes an image depicting a company logo. Inthis case, the source may contain a version history identifying a logothat the company formerly used and a current version of the companylogo. In the examples of the contact record and the company logo, eachof the previous versions may be associated with a version number and arevision date. In some embodiments, CM database 106 may be written toand read by programs and entities outside of computing environment 100in order to populate the repository with sources. In various examples,CM database 106 may be a database maintained by one or both of a contentmanagement system (CMS) and a customer relationship management (CRM)system. In some embodiments, CM database 106 represents one or morerepositories maintained by any number of entities. For example, CMdatabase 106 may include a web server, a file repository, a communitysite, or any other entity. In some embodiments, CM database 106 includesreferences (e.g., identifying metadata, document identifiers, or uniformresources locators) to a source that is stored outside of CM database106, but which is accessible via CM database 106, in which case thesources of CM database 106 include the referenced source. In someembodiments, CM database 106 specifies distribution permissions for oneor more sources. Distribution permissions may specify conditions underwhich distribution of content of a source may be allowed or prohibited.For example, distribution permissions may prohibit sharing content of asource outside of a particular group of individuals (e.g., individualson an access control list, a department, a company, or a country).

Client UI 112 executes locally on client device 110 and operates toprovide a UI to a user of client device 110. Client UI 112 furtheroperates to receive user input from a user via the provided userinterface, thereby enabling the user to interact with client device 110.In one embodiment, client UI 112 provides a user interface that enablesa user of client device 110 to interact with scoring program 104 ofcomputing device 102 via network 120. In various examples, the userinteracts with scoring program 104 in order to view document 114 alongwith markup reflecting suitability scores as determined by scoringprogram 104. In one embodiment, client UI 112 is stored on client device110. In other embodiments, client UI 112 is stored on another computingdevice (e.g., computing device 102), provided that client UI 112 canaccess and is accessible by at least scoring program 104.

In various embodiments, client device 110 is a computing device that canbe a standalone device, a server, a laptop computer, a tablet computer,a netbook computer, a personal computer (PC), a desktop computer, apersonal digital assistant (PDA), a smart phone, or any programmableelectronic device capable of communicating with computing device 102 vianetwork 120. In another embodiment, client device 110 represents acomputing system utilizing clustered computers and components to act asa single pool of seamless resources. In general, client device 110 canbe any computing device or a combination of devices with access tocomputing device 102, and with access to and/or capable of executingsome or all of client UI 112 and document 114. Client device 110 mayinclude internal and external hardware components, as depicted anddescribed in further detail with respect to FIG. 4.

FIG. 2 is a flowchart depicting operations for embedded contentsuitability scoring, on a computing device within the computingenvironment of FIG. 1, in accordance with an embodiment of the presentinvention. For example, FIG. 2 is a flowchart depicting operations 200of scoring program 104 on computing device 102 within computingenvironment 100.

In step 202, scoring program 104 receives a document. In one embodiment,scoring program 104 receives a document from client device 110. Forexample, scoring program 104 receives document 114 from client device110 in response to a user interaction with client UI 112. In theillustrative example of FIGS. 3A-3B, the document is an email message,which scoring program 104 evaluates. In such an example, scoring program104 receives the email message in response to a user interaction such asopening or editing a new outgoing email message, draft outgoing emailmessage, or received email message. As described above in furtherdetail, document 114 includes content.

In step 204, scoring program 104 identifies at least one container ofthe document. A container is a portion of content of a document thatseparated into a unit. For example, an email message may include one ormore containers for the header, subject, body, and attachments. Theheader of an email message may specify recipient addressing and/orrouting information. In one embodiment, each paragraph of the body ofthe email is a separate container. In one embodiment, scoring program104 performs operations 206 and 208 for each of the at least onecontainer of the document. In various embodiments, scoring program 104identifies containers utilizing document metadata, structural analysisof the document, semantic analysis of the content, content parsing, andother natural language processing techniques. In another embodiment,scoring program 104 identifies one or more containers of document 302(see FIGS. 3A-3B) in response to user input. For example, scoringprogram 104 receives user input via client UI 112 that delineates theboundaries of a container. In another example, the user input identifiesa portion of content for a container.

In step 206, scoring program 104 identifies a source for a container.For example, scoring program 104 identifies a source within CM database106 by matching the content of the container to the content of thesource. In one embodiment, scoring program 104 identifies a source ofthe container as the source having a current or previous version ofcontent that matches the content of the container. As mentioned above,scoring program 104 may perform operations 206 and 208 for each of theat least one container of the document. Accordingly, although operations206 and 208 are discussed with reference to a single container, one ofordinary skill in the art will recognize that multiple iterations ofoperations 206 and 208 may be performed in order to process eachcontainer.

In one embodiment, scoring program 104 identifies a source utilizing aninference engine. In various examples, the inference engine utilizes oneor more of the following techniques: one or more bodies of knowledge,natural language processing, profile/rules information, one or moreworkflows, metadata analysis, semantic analysis, cognitive computing,question answering techniques, and inference generation. The one or morebodies of knowledge may include corporate and/or industry informationprocessing guidelines or constraints.

In step 208, scoring program 104 determines a suitability score for thecontainer. Scoring program 104 determines the suitability score for acontainer by aggregating one or more scoring factors for the container.Scoring program 104 determines each scoring factor based on the contentsof the container. In one embodiment, scoring program 104 represents eachscoring factor as a value along a numerical range. For example, thenumerical range is from 1.00 to 0.00, in which case a value of 1.00indicates complete suitability and a value of 0.00 indicates completeunsuitability; generally, lower values represent lower suitability. Inone embodiment, scoring program 104 aggregates the scoring factors byaveraging the scoring factors. In another embodiment, scoring program104 aggregates the scoring factors by averaging the scoring factors,unless the value of one or more of the scoring factors falls below apredetermined threshold (e.g., 0.10, 0.03, or 0.01), in which case thecontainer is scored as challenged (i.e., 0.00), regardless of the valuesof any other scoring factors of the container.

Scoring program 104 may determine a scoring factor based on the accuracyof the contents of a container. In such embodiments, scoring program 104compares the contents of the container to the contents of the sourceidentified for the container (see step 206). In this case, the scoringfactor represents the degree to which the contents of the containermatch the contents of the source. Content may be compared on abit-by-bit basis, using a checksum, or other comparison technique. Thescoring factor for accuracy is positively correlated with the closenessof the match.

In some embodiments, scoring program 104 also determines a scoringfactor for a confidence score for the accuracy comparison. Theconfidence score reflects the degree of certainty with which scoringprogram 104 made the determination of closeness. In this case, thescoring factor for the confidence score is positively correlated withthe confidence score.

In one embodiment, the scoring factor for accuracy is based, at least inpart, on the accuracy of one or more facts or assertions stated withinthe content of the container. For example, if a container for aparagraph of text in the body of a paragraph contains an email addressor URL that is outdated, then this inaccuracy negatively impacts thescoring factor for accuracy.

Scoring program 104 may determine a scoring factor based on the age ofthe contents of a container. In one such embodiment, scoring program 104determines the scoring factor for age based on the version history ofthe source and a predetermined set of rules that specifies under whatconditions content of a container is challenged due to age. In thiscase, the set of rules specifies whether content is challenged based onthe version of content of the source that matches the content of thecontainer. For example, the set of rules may specify that content of acontainer is challenged if the content matches a version of the sourceother than the current version. In another example, content ischallenged if the content matches a version of the source that is olderthan a specified duration of time. In yet another example, content ischallenged if the content matches a version of content of the sourcethat is more than a predetermined number of revisions old.

In embodiments in which scoring program 104 employs an inference engine,the inference engine may include one or more rules that influence thedetermination of the suitability score of a container. For example, theinference engine may include a rule that specifies a portion of contentof a source that may be modified without negatively impacting asuitability score of a container having content that matches the contentof the source. Further, the inference engine may include another rulethat specifies a portion of a source that, if modified, mandates a lowsuitability score for the container that matches the source.

In step 210, scoring program 104 determines a suitability category for acontainer based on the suitability score for the container. In oneembodiment, each suitability category corresponds to a sub-range ofvalues within the range of values of suitability scores. Suitabilitycategories may include, for example, verified, acceptable, questioned,and challenged. In one embodiment, each category corresponds to a rangeof suitability scores such that each possible value of a suitabilityscore corresponds to one category. For example, the verified categorycorresponds to suitability scores greater than or equal to a firstthreshold, the acceptable category corresponds to suitability scoresless than the first threshold and greater than or equal to a secondthreshold, the questioned category corresponds to suitability scoresless than the second threshold and greater than or equal to a thirdthreshold, and the challenged category corresponds to suitability scoresbelow the third threshold.

In step 212, scoring program 104 presents the document with markupreflecting suitability scores. Scoring program 104 presents markup foreach container for which scoring program 104 determined a suitabilityscore. The markup visually or graphically reflects the suitability scorein a manner that conveys the meaning of the markup to a user. In oneembodiment, scoring program 104 presents document 114 via client UI 112with markup reflecting the suitability score determined by scoringprogram 104 for each container of document 114. In one embodiment,scoring program 104 also presents a legend via client UI 112 thatindicates the meaning of each type of markup. In some embodiments,scoring program 104 presents one or more prompts for each container.Prompts are discussed in further detail in connection with FIG. 3B.

Each container is presented within a region of client UI 112. Scoringprogram 104 presents the markup for a container by presentinginformation reflecting the suitability category of the container viaclient UI 112 in a way that associates the information with thecontainer. In one example, scoring program 104 presents the markup for acontainer by highlighting, shading, outlining, or otherwise graphicallyindicating the container. The markup for a container graphicallyindicates the suitability category of the container. For example, themarkup may include a color, pattern, text, or other indicator thatcorresponds to the suitability category to which the container belongs.In one embodiment, scoring program 104 presents the markup for acontainer by superimposing a graphical element over at least a portionof the region of client UI 112 in which the content of the container isdepicted. An example UI is discussed with further detail in connectionwith FIGS. 3A-3B.

FIG. 3A is a depiction of an example user interface, generallydesignated 300 a, presenting example document 302, in accordance with anembodiment of the present invention.

Example user interface 300 a depicts document 302, which is an emailmessage. Document 302 includes containers 304 a, 306 a, 308 a, 310 a,312 a, 314 a, 316 a, and 318 a. Container 304 a is a header of the emailmessage. Container 306 a is a greeting line. Container 308 a is a firstparagraph of text. Container 310 a is a second paragraph of text.Container 312 a is an email signature. Container 314 a is an imagedepicting a corporate logo. Container 316 a is a first email attachment.Container 318 a is a second email attachment.

In the depicted example, scoring program 104 identifies the containersof document 302 utilizing techniques discussed above. In particular,scoring program 104 identifies container 304 based on metadata andstructural analysis of document 302. Scoring program 104 identifiescontainer 306 a as a greeting based on the text being near the beginningof document 302 and further based on the content of the containerfitting a semantic pattern of a greeting (e.g.,<greeting><name><transition punctuation>). Scoring program 104identifies containers 308 a and 310 a based on carriage returns (i.e.,line breaks) separating the text within the body of document 302 intoparagraphs. Scoring program 104 may identify container 312 a as an emailsignature based on the text being near the end of document 302 andfurther based on the content of the container fitting a semantic patterncorresponding to an email signature. Scoring program 104 may also (oralternatively) identify container 312 a as an email signature based onmetadata. Further, based on metadata or structural analysis of document302, scoring program 104 may identify container 314 a as an image,container 316 a as an attachment, and container 318 a as an attachment.

In one example, the content of container 306 a is “Dear John Doe,” butthe recipient email address specified in the portion of container 304 acorresponding to the “To:” field does not correspond to John Doe. Inthis case, scoring program 104 determines a low suitability score forone or both of container 304 a or container 306 a due to the inaccuracy.In another example, the content of container 306 a is “Dear John Doe,”and the email address of the “To:” field of container 304 a matches aprevious version of an email address of a contact record included in CMdatabase 106. In this case, scoring program 104 determines a lowsuitability score for container 304 a and may present markup including aprompt to reconcile the outdated email address to a current emailaddress.

In one example, container 318 a is an attached file. Scoring program 104matches the file to a source of CM database 106. In this example, thesource is a file that is associated with distribution permissions thatspecify that the file is not to be distributed outside of the company.Scoring program 104 determines whether the email message would share thefile outside of the company based on the domain of each recipient emailaddress of container 304 a. In response to determining that at least oneemail address does not belong to the domain of the company, scoringprogram 104 categorizes container 318 a as challenged.

FIG. 3B is a depiction of an example user interface, generallydesignated 300 b, presenting markup for example document 302, inaccordance with an embodiment of the present invention. For clarify ofdepiction, the content of the containers is omitted in FIG. 3B.

Document 302 is depicted with markup 304 b, 306 b, 308 b, 310 b, 312 b,314 b, 316 b, and 318 b. Scoring program 104 may present such markup inany of various ways; the example depicted in FIG. 3B is for illustrativepurposes only.

Example user interface 300 b includes legend 320, which indicates acategory indicated by a particular type of markup. Markup 304 b, 306 b,and 314 b indicates that containers 304 a, 306 a, and 314 a,respectively, correspond to a verified category. Markup 308 b, 312 b,and 316 b indicate that containers 308 a, 312 a, and 316 a,respectively, correspond to an acceptable category. Markup 310 bindicates that container 310 a corresponds to a questioned category.Finally, markup 318 b indicates that container 318 a corresponds to achallenged category.

Example user interface 300 b also includes prompt 322 and prompt 324,which are examples of prompts that scoring program 104 causes client UI112 to present. Each prompt allows a user to indicate an action for acontainer. Scoring program 104 performs the indicated action. In variousembodiments, scoring program 104 causes client UI 112 to present one ormore prompts concurrently, in sequence, or in response to a userinteraction with a container. For example, the user interaction with acontainer may be a mouseover, hover, click, or other gesture thatindicates the container. In the depicted example, up to three actionsare available for each container: reconcile, remove, or skip. Thereconcile action and the skip action are unavailable for containerscategorized as challenged (e.g., container 318 a).

In one embodiment, scoring program 104 performs a reconcile action bymodifying the content of the container to match the current version ofthe content of the source. In another embodiment, scoring program 104performs a reconcile action by presenting all or part of the content ofthe source to the user (e.g., via client UI 112). In one example,scoring program 104 highlights or otherwise calls attention todifferences between the content of the container and the content of thesource. In such an example, scoring program 104 may show the differencesvia in-line change tracking, a modal dialog box, a modeless dialog box,or other user interface element. Scoring program 104 performs a removeaction by deleting the content of the container from the document. Invarious embodiments, scoring program 104 performs a skip action by:changing the category of the container to the verified category,changing the category of the container to a skipped category, ormaintaining the category of container and disregarding the containerfrom further analysis. Further, scoring program 104 performing the skipaction may include maintaining the markup of a skipped container(regardless of any category change) or changing the markup (e.g., tocorrespond to the category to which the container is changed).

In some embodiments, scoring program 104 causes client UI 112 to presenta prompt for one or more containers. In one embodiment, scoring program104 causes client UI 112 to present a prompt for each container. Inanother embodiment, scoring program 104 causes client UI 112 to presenta prompt for each container corresponding to one or more particularcategories. For example, scoring program 104 causes client UI 112 topresent a prompt for each container corresponding to a category otherthan verified.

In some embodiments, scoring program 104 requires a user to indicate anaction for each presented prompt. For example, scoring program 104presents a prompt for each container not categorized as verified andrequires a user to indicate an action for each prompt before scoringprogram 104 allows an email message to be sent. In another embodiment,scoring program 104 requires a user to indicate an action only for thosecontainers corresponding to particular categories. For example, scoringprogram 104 requires a user to indicate an action for containerscategorized as questioned. In yet another embodiment, scoring program104 automatically acts upon a container by performing an actioncorresponding to the category of the container. For example, scoringprogram 104 removes challenged containers, reconciles questioned andacceptable containers, and skips verified containers.

FIG. 4 is a block diagram of components of a computing device, generallydesignated 400, in accordance with an embodiment of the presentinvention. In one embodiment, computing device 400 is representative ofcomputing device 102 within computing environment 100, in which casecomputing device 102 includes scoring program 104 and CM database 106.In another embodiment, computing device 400 is representative of clientdevice 110 within computing environment 100, in which case client device100 includes client UI 112 and document 114.

It should be appreciated that FIG. 4 provides only an illustration ofone implementation and does not imply any limitations with regard to theenvironments in which different embodiments may be implemented. Manymodifications to the depicted environment may be made.

Computer system 400 includes processor(s) 402, cache 406, memory 404,persistent storage 410, input/output (I/O) interface(s) 412,communications unit 414, and communications fabric 408. Communicationsfabric 408 provides communications between cache 406, memory 404,persistent storage 410, communications unit 414, and input/output (I/O)interface(s) 412. Communications fabric 408 can be implemented with anyarchitecture designed for passing data and/or control informationbetween processors (such as microprocessors, communications and networkprocessors, etc.), system memory, peripheral devices, and any otherhardware components within a system. For example, communications fabric408 can be implemented with one or more buses or a crossbar switch.

Memory 404 and persistent storage 410 are computer readable storagemedia. In this embodiment, memory 404 includes random access memory(RAM). In general, memory 404 can include any suitable volatile ornon-volatile computer readable storage media. Cache 406 is a fast memorythat enhances the performance of processor(s) 402 by holding recentlyaccessed data, and data near recently accessed data, from memory 404.

Program instructions and data used to practice embodiments of thepresent invention may be stored in persistent storage 410 and in memory404 for execution by one or more of the respective processor(s) 402 viacache 406. In an embodiment, persistent storage 410 includes a magnetichard disk drive. Alternatively, or in addition to a magnetic hard diskdrive, persistent storage 410 can include a solid state hard drive, asemiconductor storage device, read-only memory (ROM), erasableprogrammable read-only memory (EPROM), flash memory, or any othercomputer readable storage media that is capable of storing programinstructions or digital information.

The media used by persistent storage 410 may also be removable. Forexample, a removable hard drive may be used for persistent storage 410.Other examples include optical and magnetic disks, thumb drives, andsmart cards that are inserted into a drive for transfer onto anothercomputer readable storage medium that is also part of persistent storage410.

Communications unit 414, in these examples, provides for communicationswith other data processing systems or devices. In these examples,communications unit 414 includes one or more network interface cards.Communications unit 414 may provide communications through the use ofeither or both physical and wireless communications links. Programinstructions and data used to practice embodiments of the presentinvention may be downloaded to persistent storage 410 throughcommunications unit 414.

I/O interface(s) 412 allows for input and output of data with otherdevices that may be connected to each computer system. For example, I/Ointerface(s) 412 may provide a connection to external device(s) 416 suchas a keyboard, keypad, a touch screen, and/or some other suitable inputdevice. External device(s) 416 can also include portable computerreadable storage media such as, for example, thumb drives, portableoptical or magnetic disks, and memory cards. Software and data used topractice embodiments of the present invention can be stored on suchportable computer readable storage media and can be loaded ontopersistent storage 410 via I/O interface(s) 412. I/O interface(s) 412also connect to display 418.

Display 418 provides a mechanism to display or present data to a userand may be, for example, a computer monitor.

The present invention may be a system, a method, and/or a computerprogram product. The computer program product may include a computerreadable storage medium (or media) having computer readable programinstructions thereon for causing a processor to carry out aspects of thepresent invention.

The computer readable storage medium can be a tangible device that canretain and store instructions for use by an instruction executiondevice. The computer readable storage medium may be, for example, but isnot limited to, an electronic storage device, a magnetic storage device,an optical storage device, an electromagnetic storage device, asemiconductor storage device, or any suitable combination of theforegoing. A non-exhaustive list of more specific examples of thecomputer readable storage medium includes the following: a portablecomputer diskette, a hard disk, a random access memory (RAM), aread-only memory (ROM), an erasable programmable read-only memory (EPROMor Flash memory), a static random access memory (SRAM), a portablecompact disc read-only memory (CD-ROM), a digital versatile disk (DVD),a memory stick, a floppy disk, a mechanically encoded device such aspunch-cards or raised structures in a groove having instructionsrecorded thereon, and any suitable combination of the foregoing. Acomputer readable storage medium, as used herein, is not to be construedas being transitory signals per se, such as radio waves or other freelypropagating electromagnetic waves, electromagnetic waves propagatingthrough a waveguide or other transmission media (e.g., light pulsespassing through a fiber-optic cable), or electrical signals transmittedthrough a wire.

Computer readable program instructions described herein can bedownloaded to respective computing/processing devices from a computerreadable storage medium or to an external computer or external storagedevice via a network, for example, the Internet, a local area network, awide area network and/or a wireless network. The network may comprisecopper transmission cables, optical transmission fibers, wirelesstransmission, routers, firewalls, switches, gateway computers and/oredge servers. A network adapter card or network interface in eachcomputing/processing device receives computer readable programinstructions from the network and forwards the computer readable programinstructions for storage in a computer readable storage medium withinthe respective computing/processing device.

Computer readable program instructions for carrying out operations ofthe present invention may be assembler instructions,instruction-set-architecture (ISA) instructions, machine instructions,machine dependent instructions, microcode, firmware instructions,state-setting data, or either source code or object code written in anycombination of one or more programming languages, including an objectoriented programming language such as Smalltalk, C++ or the like, andconventional procedural programming languages, such as the “C”programming language or similar programming languages. The computerreadable program instructions may execute entirely on the user'scomputer, partly on the user's computer, as a stand-alone softwarepackage, partly on the user's computer and partly on a remote computeror entirely on the remote computer or server. In the latter scenario,the remote computer may be connected to the user's computer through anytype of network, including a local area network (LAN) or a wide areanetwork (WAN), or the connection may be made to an external computer(for example, through the Internet using an Internet Service Provider).In some embodiments, electronic circuitry including, for example,programmable logic circuitry, field-programmable gate arrays (FPGA), orprogrammable logic arrays (PLA) may execute the computer readableprogram instructions by utilizing state information of the computerreadable program instructions to personalize the electronic circuitry,in order to perform aspects of the present invention.

Aspects of the present invention are described herein with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems), and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer readable program instructions.

These computer readable program instructions may be provided to aprocessor of a general purpose computer, special purpose computer, orother programmable data processing apparatus to produce a machine, suchthat the instructions, which execute via the processor of the computeror other programmable data processing apparatus, create means forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks. These computer readable program instructionsmay also be stored in a computer readable storage medium that can directa computer, a programmable data processing apparatus, and/or otherdevices to function in a particular manner, such that the computerreadable storage medium having instructions stored therein comprises anarticle of manufacture including instructions which implement aspects ofthe function/act specified in the flowchart and/or block diagram blockor blocks.

The computer readable program instructions may also be loaded onto acomputer, other programmable data processing apparatus, or other deviceto cause a series of operational steps to be performed on the computer,other programmable apparatus or other device to produce a computerimplemented process, such that the instructions which execute on thecomputer, other programmable apparatus, or other device implement thefunctions/acts specified in the flowchart and/or block diagram block orblocks.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods, and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof instructions, which comprises one or more executable instructions forimplementing the specified logical function(s). In some alternativeimplementations, the functions noted in the block may occur out of theorder noted in the Figures. For example, two blocks shown in successionmay, in fact, be executed substantially concurrently, or the blocks maysometimes be executed in the reverse order, depending upon thefunctionality involved. It will also be noted that each block of theblock diagrams and/or flowchart illustration, and combinations of blocksin the block diagrams and/or flowchart illustration, can be implementedby special purpose hardware-based systems that perform the specifiedfunctions or acts or carry out combinations of special purpose hardwareand computer instructions.

The term(s) “Smalltalk” and the like may be subject to trademark rightsin various jurisdictions throughout the world and are used here only inreference to the products or services properly denominated by the marksto the extent that such trademark rights may exist.

The descriptions of the various embodiments of the present inventionhave been presented for purposes of illustration, but are not intendedto be exhaustive or limited to the embodiments disclosed. Manymodifications and variations will be apparent to those of ordinary skillin the art without departing from the scope and spirit of the invention.The terminology used herein was chosen to best explain the principles ofthe embodiments, the practical application or technical improvement overtechnologies found in the marketplace, or to enable others of ordinaryskill in the art to understand the embodiments disclosed herein.

What is claimed is:
 1. A computer system for embedded contentsuitability scoring, comprising: one or more computer processors; one ormore non-transitory computer readable storage media; programinstructions stored on the one or more non-transitory computer readablestorage media for execution by at least one of the one or moreprocessors, the program instructions comprising: program instructions toidentify a plurality of containers of an email message, wherein eachcontainer includes a portion of content of the email message; programinstructions to identify a source of a container of the plurality ofcontainers of the email message, by matching the contents of thecontainer to contents of a matching version of the source of thecontainer, wherein a plurality of versions of the source of thecontainer exist; program instructions to determine a suitability scorefor the container based, at least in part, on the contents of thecontainer and the contents of the matching version of the source of thecontainer, wherein (i) the suitability score is an aggregation of afirst factor and a second factor, (ii) the first factor represents adegree to which the contents of the container match the contents of thematching version of the source of the container, and (iii) the secondfactor represents an age of the matching version of the source; if thefirst factor or the second factor falls below a predetermined thresholdvalue for the container, then the container is categorized into achallenged suitability category; else, program instructions to associatethe container with a questioned suitability category based, at least inpart, on the suitability score, wherein the questioned suitabilitycategory is one suitability category in a group of suitabilitycategories consisting of the questioned suitability category, a verifiedsuitability category, an acceptable suitability category, and achallenged suitability category; wherein each suitability category isassociated with a respective sub-range of values within a predeterminedrange of possible values of the suitability score; program instructionsto present the email message on a user interface, the email messageincluding a markup that (i) is associated with the questionedsuitability category and (ii) visually indicates that the container isassociated with the questioned suitability category; programinstructions to detect a first user interaction with the container onthe user interface, and in response, present a prompt that includes areconcile action, a remove action, and a skip action, wherein: executingthe reconcile action initiates operations to modify the contents of thecontainer to match contents of a current version of the source of thecontainer; executing the remove action initiates operations to deletethe contents of the container; and executing the skip action initiatesoperations to change the suitability category of the container to theverified suitability category; and program instructions to execute oneof the reconcile action, the remove action, and the skip action based ona second user interaction with the container on the user interface.